home *** CD-ROM | disk | FTP | other *** search
/ Games of Daze / Infomagic - Games of Daze (Summer 1995) (Disc 1 of 2).iso / x2ftp / msdos / iguana / vts139b / lib / hexconve.pas < prev    next >
Pascal/Delphi Source File  |  1993-11-24  |  3KB  |  93 lines

  1. {****************************************************************************}
  2. {                                                                            }
  3. { MODULE:         HexConversions                                             }
  4. {                                                                            }
  5. { DESCRIPTION:    Implements data conversion functions number -> string.     }
  6. {                                                                            }
  7. { AUTHOR:         Juan Carlos Arévalo                                        }
  8. {                                                                            }
  9. { MODIFICATIONS:  Nobody (yet ;-).                                           }
  10. {                                                                            }
  11. { HISTORY:        01-Oct-1992 First documentation.                           }
  12. {                 17-Oct-1992 Documentation finished.                        }
  13. {                 24-Nov-1993 Added longint support.                         }
  14. {                                                                            }
  15. { (C) 1992 VangeliSTeam                                                      }
  16. {____________________________________________________________________________}
  17.  
  18. UNIT HexConversions;
  19.  
  20. INTERFACE
  21.  
  22. TYPE
  23.   THexPString = STRING[9]; { Hex POINTER string. }
  24.   THexLString = STRING[8]; { Hex LONG    string. }
  25.   THexWString = STRING[4]; { Hex WORD    string. }
  26.   THexBString = STRING[2]; { Hex BYTE    string. }
  27.   THexNString = CHAR;      { Hex nibble  string. }
  28.  
  29.  
  30.  
  31.  
  32. FUNCTION HexPtr  (p: POINTER) : THexPString; { Converts POINTER to hexadecimal. }
  33. FUNCTION HexLong (l: LONGINT) : THexLString; { Converts WORD    to hexadecimal. }
  34. FUNCTION HexWord (w: WORD)    : THexWString; { Converts WORD    to hexadecimal. }
  35. FUNCTION HexByte (b: BYTE)    : THexBString; { Converts BYTE    to hexadecimal. }
  36. FUNCTION HexDigit(d: BYTE)    : THexNString; { Converts nibble  to hexadecimal. }
  37.  
  38.  
  39.  
  40.  
  41. IMPLEMENTATION
  42.  
  43.  
  44.  
  45.  
  46. {----------------------------------------------------------------------------}
  47. { Hex conversion routines.                                                   }
  48. {____________________________________________________________________________}
  49.  
  50. CONST
  51.   HexTabla : STRING[16] = '0123456789ABCDEF'; { Hex chars table. }
  52.  
  53.  
  54. FUNCTION HexPtr(p: POINTER) : THexPString;
  55.   BEGIN
  56.     HexPtr := HexWord(SEG(p^)) + ':' + HexWord(OFS(p^));
  57.   END;
  58.  
  59.  
  60. FUNCTION HexLong(l: LONGINT) : THexLString;
  61.   BEGIN
  62.     HexLong := HexWord(SEG(POINTER(l)^)) + HexWord(OFS(POINTER(l)^));
  63.   END;
  64.  
  65.  
  66. FUNCTION HexWord(w: WORD) : THexWString;
  67.   BEGIN
  68.     HexWord[0] := #4;
  69.     HexWord[1] := HexTabla[ (w SHR 12)         + 1];
  70.     HexWord[2] := HexTabla[((w SHR  8) AND $F) + 1];
  71.     HexWord[3] := HexTabla[((w SHR  4) AND $F) + 1];
  72.     HexWord[4] := HexTabla[( w         AND $F) + 1];
  73.   END;
  74.  
  75.  
  76. FUNCTION HexByte(b: BYTE) : THexBString;
  77.   BEGIN
  78.     HexByte[0] := #2;
  79.     HexByte[1] := HexTabla[((b SHR  4) AND $F) + 1];
  80.     HexByte[2] := HexTabla[( b         AND $F) + 1];
  81.   END;
  82.  
  83.  
  84. FUNCTION HexDigit(d: BYTE) : THexNString;
  85.   BEGIN
  86.     HexDigit := HexTabla[(d AND $F) + 1];
  87.   END;
  88.  
  89.  
  90.  
  91.  
  92. END.
  93.